In order to ensure the quality of software applications, quality assurance (e.g., QA) engineers use a variety of tools and procedures. For example, if an application has been modified, QA engineers test the application in order to ensure that additional bugs have not been introduced. Automated testing tools that perform regression testing are typically used to test the quality of a software application. WinRunner, by Mercury Interactive, is an example of an automated testing tool.
Regression testing is a quality control measure to ensure that newly modified code still complies with its specified requirements and that unmodified code has not been affected by any modifications. Regression testing is often used to the selectively retest a software application that has been modified to ensure that any bugs have been fixed. Furthermore, regression testing can be used to ensure that no other previously-working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.
Automated testing tools typically contain a number of functions and tools for developing and running regression testing. However, current typical automated testing tools do not have date-time functions that are needed to obtain a past date or future date, for testing of software applications requiring time and date sensitive input, such as Oracle's e-business suite of applications. As a result, QA engineers are not able to derive the past and future dates automatically in a typical regression test.
In order to input past and future dates and times, it is typically necessary to use a fixed date mode while running regression tests. However, using a fixed date mode is not suitable for working on central environments. Typical automated testing tools provide a function that provides a current date that is based on the system time. In order to perform regression tests using different dates, it is necessary to alter the system time. Changing the system time on a central environment is rarely, if ever, feasible, due to the use and reliance of connected computers on the system time. For example, different QA engineers may require a different system date at the same time.
To avoid the problems that result from changing the system time in a centralized environment, QA engineers and teams often retain their own individual application environments for performing QA activities. Maintaining an independent environment by each QA team is often very costly, with respect to the cost of maintaining a one or a few central environments for QA teams.
Alternatively, in some situations, QA engineers may change the date and/or time directly in the regression testing script. In order to change dates and times, it is necessary to hard code the specific dates and times into the script. For some applications, such as financial and scheduling applications, a very large number of dates and times may be required. Hard coding these dates and times may require a significant amount of time, at a considerable cost. Furthermore, since the dates are hard coded, in order to run a regression test using different dates, the dates in the script must be replaced with new dates, further increasing the time required to test the quality of an application and to maintain the automated regression tests over time.
Additionally, typical automated testing tools provide the current date and/or time in a default format. Many software applications are used in a wide number of geographic locales having a variety of standard date formats. Often, the standard format of a locale differs from the default format. Currently, regression tests can only present the date in the default format, which may present confusion to the QA engineer. For example, typical automated testing tools present the date in the DD-MM-YYYY format. Where a locale uses the MM-DD-YYYY format, a substantial amount of confusion may be introduced into the testing. Moreover, a software application may require date input to be in a format different to the default format, requiring the hard coding of a date into the testing script at an additional expense.
Furthermore, automated testing tools typically provide the capability to perform a number of regression tests in a batch mode. Regression tests declare various variables for storing and accessing data. Often, regression tests for use in batch mode often pass variables from one regression test to the next such that the regression tests are dependent on each other. QA engineers are either passing the variables from the individual regression tests to the driver or passing the values of the variables from the driver to individual regression tests.
For example, the output of a first regression test may be the input of a second regression test. As such, in order to run the second regression test, it is necessary to run the first regression test. In particular, a later regression test of a batch cannot be run without running an earlier regression test of the batch if there are dependent variables. Moreover, a batch may comprise several regression tests, each dependent on a previous regression test. If the QA engineer only wants to test a later regression test, each regression test prior to the later regression test must be run as well as the values of the dependent variables are only made available in the memory during the session.
As a result, as the values of the variables are in the temporary memory during the session, QA engineers who run a batch of regression tests do not have any idea about the variables made use of in the entire batch included in the driver. Furthermore, variables are typically stored only in temporary memory of the automated testing tool, so that the values represented by the variables are lost when the automated testing tool execution is stopped. In such a situation, the QA engineer will not know the values of the variables for the purpose of querying or using the records already created in the application before the execution of the automated testing tool was stopped.